#ifndef COMPONENTFACTORY_H
#define COMPONENTFACTORY_H


#include "Component.h"
#include "ComponentManager.h"

#include <string>

class ComponentArguments;
class Component;
class ComponentManager;

class ComponentFactory
{

    friend class ComponentManager;

    public:

        Component* create(std::string _name, ComponentArguments _cArgs);


    protected:

            ComponentFactory(ComponentManager* _parent);
            virtual ~ComponentFactory();

    private:

    ComponentManager* m_parent;
};

#endif // COMPONENTFACTORY_H
